package com.aorise.service.organ;

import com.aorise.model.organ.OrganAddVO;
import com.aorise.model.organ.OrganEditVO;
import com.aorise.model.organ.OrganModel;

import java.util.List;
import java.util.Map;

/**
 * @Author:cat
 * @Desicription: 组织架构接口服务类
 * @Date:Created in 2019-05-23
 * @Modified By:
 */
public interface OrganService {

    /**
     * @Author:cat
     * @Description 查询所有组织架构信息
     * @Date:2019-05-23
     * @Return: List<OrganModel> 组织架构信息集合
     * @Modified By:
     */
    List<OrganModel> getAllOrganList();

    /**
     * @Author:cat
     * @Description 按层级查询所有组织架构信息
     * @Date:2019-05-23
     * @Return: List<OrganModel> 组织架构信息集合
     * @Modified By:
     */
    List<OrganModel> getAllOrganListTree();

    /**
     * @Author:cat
     * @Description 根据ID查询组织架构详情
     * @params: id 主键ID
     * @Date:2019-05-23
     * @Return: OrganModel 组织架构信息
     * @Modified By:
     */
    OrganModel getOrganById(Integer id);

    /**
     * @Author:cat
     * @Description 新增组织架构信息
     * @params: organAddVO 组织架构信息
     * @Date:2019-05-23
     * @Return: Integer 主键
     * @Modified By:
     */
    Integer addOrgan(OrganAddVO organAddVO);

    /**
     * @Author:cat
     * @Description 修改组织架构信息
     * @params: organEditVO 组织架构信息
     * @Date:2019-05-23
     * @Return: Integer 影响行数
     * @Modified By:
     */
    Integer updateOrgan(OrganEditVO organEditVO);

    /**
     * @Author:cat
     * @Description 删除组织架构信息
     * @params: map 查询条件Map
     * @Date:2019-05-23
     * @Return: Integer 影响行数
     * @Modified By:
     */
    Integer deleteOrgan(Map<String, Object> map);
}
